ヘッダーをスキップ
Oracle TimesTen In-Memory Database C開発者およびリファレンス・ガイド
リリース7.0
E05164-03
  目次へ
目次
索引へ
索引

前へ
前へ
次へ
次へ
 

ODBC関数の変更

『ODBC 2.5 Programmer's Reference and SDK Guide』に記載されている次のODBC関数に変更が加えられました。

SQLBindColを使用したリバインド

アプリケーションでは、データがすでにフェッチされたかどうかに関係なく、SQLBindColをコールして新しい格納場所に列をバインドできます。新しいバインドによって、古いバインドが置き換えられます。これは、他のバインドされた列のみでなく、ブックマークの列についても当てはまります。新しいバインドは、フェッチ済のデータには適用されません。次にSQLFetchまたはSQLSetPosをコールした時点で有効になります。

64ビット・プラットフォームでのLONGのバインド

64ビット・プラットフォームでLONGをバインドする場合は、データ型SQL_C_SBIGINTを使用する必要があります。

rc = SQLBindCol(hstmt, 1, SQL_C_SBIGINT, &precision_l, 0, &pLen);

『ODBC 3.0 Programmer's Reference and SDK Guide』では、C型long intに対応するものとしてSQL_C_SLONGについて記載されています。ただし、データ型SQL_C_SLONGは64ビット・モードの場合でも4バイトですが、SQL_C_SBIGINTはプラットフォームのサイズに関係なく8バイトです。

SQLBindParameterのpcbValue

SQLBindParameterpcbValueがSQL_DEFAULT_PARAMの場合、対応するパラメータはODBC標準のプロシージャ起動用のパラメータのみとなります。

SQLExecDirectSQLExecuteおよびSQLPutDataは、パラメータ値がSQL_DEFAULT_PARAMに設定され、対応するパラメータがODBC標準のプロシージャ起動用のパラメータでない場合、SQLSTATE 07S01(Invalid use of default parameter)を返します。

SQLPrepareによって返されるSQLSTATE S1C00

カーソルと同時実行性の組合せが無効である場合、SQLPrepareは、SQLSTATE S1C00(Driver not capable)を返します。

SQLFetchによって返されるSQLSTATE 22005

長さが0(ゼロ)の文字列が文字列フィールドに挿入され、そのフィールドが数値データ型にバインドされた場合、SQLFetchはSQLSTATE 22005(Error in assignment)を返し、変換される文字列は0(ゼロ)となります。

SQLFetchによって返されるSQLSTATE 22008

SQL_C_TIME、SQL_C_DATEまたはSQL_C_TIMESTAMPの値がSQL_CHARデータ型に変換され、その値がそれぞれ無効なDATE、TIMEまたはTIMESTAMPであった場合、SQLFetchはSQLSTATE 22008(Datetime field overflow)を返します。

SQLGetDataによって返されるSQLSTATE 22012

算術式からの値が結果としてゼロ除算となった場合、SQLGetDataはSQLSTATE 22012(Division by zero)を返します。